<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>圣杯布局</title>
  <style>
    body {
      min-width: 500px;
    }


    #header,
    #footer {
      background-color: #ccc;
    }

    #center {
      background-color: #999;
      width: 100%;
    }

    /* 设置margin-left 负值 让left自身元素向左，跟center重合 
    margin-left 100% 到center的最左边了，因为浮动，掉到了第二行 原本在center的右边 
    position: relative 相对于自身移动 不影响其他元素 
    right: 200px; 距离右边200px 向左移动200px
    */
    #left {
      width: 200px;
      background-color: burlywood;
      margin-left: -100%;
      position: relative;
      right: 200px;
    }

    /*
  相当于right自身没有宽度了
  margin-right负值 自身元素没有影响，后续的元素会向左移动
  */
    #right {
      width: 150px;
      background-color: red;
      margin-right: -150px;
    }


    /* 使得中间的内容浮动起来 */
    .column {
      float: left;
    }

    /* 对底部清除浮动 */
    /* #footer {
      clear: both;
    } */

    /* 两种方式 一种在footer设置 clear: both 一种在contaier添加clearfix*/
    .clearfix:after {
      content: '';
      display: table;
      clear: both;
    }

    /* 让两边有边距 */
    #container {
      padding-left: 200px;
      padding-right: 150px;
    }
  </style>
</head>

<body>
  <div id="header">header</div>
  <div id="container" class="clearfix">
    <div id="center" class="column">center</div>
    <div id="left" class="column">left</div>
    <div id="right" class="column">right</div>
  </div>
  <div id="footer">footer</div>
</body>

</html>